Thuật toán xác định đồ thị Hamilton Đường_đi_Hamilton

  • Giả sử G=(X,E)đồ thị vô hướng gồm n đỉnh với tập đỉnh X={x1,x2,...,xn}, nếu G là đồ thị Hamilton thì sẽ có chu trình Hamilton có dạng: x1--xi1--xi2--xi3... xi n-1--x1,với {i1,i2,...,in-1} là một hoán vị của tập hợp {2,3,...,n}

==> Từ đó, ta có một thuật toán hiển nhiên là: Đặt Z={xi1, xi2, xi3,…} là dãy đỉnh tương ứngtrong hoán vị của tập {2,3,…n}ta kiểm tra xem Z có tạo nên chu trình hay không, tức là phải kiểm tra (n-1)! tập (Z) khác nhau.

==> Đây là một thuật toán vét cạn, có độ phức tạp không khả thi khi n chỉ từ 20,30 đỉnh trở lên.

  • Cho đến nay, việc nghiên cứu tìm ra thuật toán hiệu quả, xác định xem một đồ thị Hamilton hay không vẫn đang là một thách thức lớn đối với các nhà toán học và tin học.
  • Một số nhà nghiên cứu đã đề xuất các thuật toán Heuristic (nhờ vào việc vận dụng các thuật toán thông minh nhân tạo, mạng neural, thuật toán gen,...) để giải quyết gần đúng các bài toán Hamilton.
  • Những thuật toán loại này khá nhanh và thông thường dừng với hai trường hợp sau:

1. Nếu khẳng định đồ thị đang xét là đồ thị Hamilton là đó là một khẳng định chính xác và có thể kiểm chứng dễ dàng.2. Nếu khẳng định định không phải là đồ thị Hamilton: có thể bị sai lầm với một xác suất nào đó(thật ra trường hợp này chính là "Không biết đồ thị đã cho có phải là đồ thị Hamilton không").